package com.jiangyao.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jiangyao.model.dto.*;
import com.jiangyao.model.entity.Subject;
import com.jiangyao.model.vo.*;
import org.springframework.stereotype.Service;

public interface PublicSubjectService extends IService<Subject> {
    /**
     * 获取学习的课程介绍
     * @param publicSubjectDto
     * @return
     */
    PublicSubjectVo getSubjectInfo(PublicSubjectDto publicSubjectDto);
    /**
     * 获取学习的课程章节目录情况
     * @param publicSubjectDto
     * @return
     */
    SChapterVo getPublicChapterCourseware(PublicSubjectDto publicSubjectDto);

    /**
     * 获取学习的课程试题列表
     * @param publicSubjectDto
     * @return
     */
    PublicChapterQuestionVo getQuestionsList(PublicSubjectDto publicSubjectDto);


    /**
     * 获取学习当前点击的课件信息
     * @param coursewareDTO
     * @return
     */
    // ChapterCoursewareVo getCoursewareInfo(CoursewareDTO coursewareDTO);

    /**
     * 课件学习页面下方的课件列表
     * @param coursewareDTO
     * @return
     */
     SChapterCoursewareVo getPublicCoursewareList(PublicCoursewareDTO coursewareDTO);

    /**
     * 课程评价列表
     * @param subjectListPageDto
     * @return
     */
    Page<EvaluationVo> getCommentList(SubjectListPageDto subjectListPageDto);

    /**
     * 获取学习当前点击的课件信息
     * @param coursewareDTO
     * @return
     */
    ChapterCoursewareVo getPublicCoursewareInfo(PublicCoursewareDTO coursewareDTO);

    /**
     * 保存用户学习课件详情
     */
    Boolean saveCourseware(PublicStudyCoursewareDto studyCoursewareDto);

    /**
     * 保存评论
     * @param evaluationDto
     * @return
     */
    Boolean saveComment(PublicEvaluationDto evaluationDto);

    /**
     * 保存回复
     * @param evaluationDto
     * @return
     */
    Boolean saveReply(PublicEvaluationDto evaluationDto);

    /**
     * 查询是否点赞
     */
    Boolean getLike(PublicSubjectDto subjectDto);

    /**
     * 保存课程报名
     */
    Boolean saveApply(PublicSubjectDto subjectDto);
}
